package pe.edu.sistemas.postgrado.samupg.domain.model;

import java.util.Date;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import static javax.persistence.GenerationType.IDENTITY;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.OneToOne;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;

@Entity
@Table(name = "notificacion", catalog = "bd_samupg")
public class Notificacion implements java.io.Serializable {

    private Integer notificId;
    private Usuario usuario;
    private Boolean notificGral;
    private String notificDescrip;
    private String notificAsunto;
    private Date notificFecha;

    public Notificacion() {
    }

    public Notificacion(Usuario usuario) {
        this.usuario = usuario;
    }

    public Notificacion(Usuario usuario, Boolean notificGral, String notificDescrip, Date notificFecha) {
        this.usuario = usuario;
        this.notificGral = notificGral;
        this.notificDescrip = notificDescrip;
        this.notificFecha = notificFecha;
    }

    @Id
    @GeneratedValue(strategy = IDENTITY)
    @Column(name = "notific_id", unique = true, nullable = false)
    public Integer getNotificId() {
        return this.notificId;
    }

    public void setNotificId(Integer notificId) {
        this.notificId = notificId;
    }

    @ManyToOne(fetch = FetchType.EAGER)
    @JoinColumn(name = "Usuario_usu_id", nullable = false)
    public Usuario getUsuario() {
        return this.usuario;
    }

    public void setUsuario(Usuario usuario) {
        this.usuario = usuario;
    }

    @Column(name = "notific_gral")
    public Boolean getNotificGral() {
        return this.notificGral;
    }

    public void setNotificGral(Boolean notificGral) {
        this.notificGral = notificGral;
    }

    @Column(name = "notific_asunto", length = 50)
    public String getNotificAsunto() {
        return this.notificAsunto;
    }
    
    public void setNotificAsunto(String notificAsunto) {
        this.notificAsunto = notificAsunto;
    }
    
    @Column(name = "notific_descrip", length = 2000)
    public String getNotificDescrip() {
        return this.notificDescrip;
    }

    public void setNotificDescrip(String notificDescrip) {
        this.notificDescrip = notificDescrip;
    }

    @Temporal(TemporalType.TIMESTAMP)
    @Column(name = "notific_fecha", length = 19)
    public Date getNotificFecha() {
        return this.notificFecha;
    }

    public void setNotificFecha(Date notificFecha) {
        this.notificFecha = notificFecha;
    }
}
